package cn.zhouchao.basic.util;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;

/**
 * 自定义spring加载bean的工具类
 */
@Component
public class SpringUtil implements ApplicationContextAware {
    /*1.实现ApplicationContextAware接口*/
    /*2.定义一个ApplicationContext类型的静态成员变量*/
    private static ApplicationContext applicationContext;
    /*3.定义一个他的get/set方法*/
    public static ApplicationContext getApplicationContext() {
        return applicationContext;
    }

    /*4.当前类通过实现接口，重写接口的唯一方法
    * 并将重写方法的参数赋值给定义的成员变量
    * 因为该方法不返回值，就需要定义下面的方法来返回该方法赋值后的变量
    * */
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.applicationContext=applicationContext;
    }

    /*5.创建一个静态方法，被用于其他类进行调用，来获取该方法返回的变量(接口参数赋值过后的变量)*/
    public static ApplicationContext getAppContext(){
        return applicationContext;
    }

}
